﻿using Newtonsoft.Json;
using PortaCapena.OdooJsonRpcClient.Attributes;
using PortaCapena.OdooJsonRpcClient.Converters;
using PortaCapena.OdooJsonRpcClient.Models;
using System;
using System.ComponentModel;
using static OdooRpcClient.OdooEnum;

namespace OdooRpcClient.Model.Base
{
    [OdooTableName("res.lang")]
    [JsonConverter(typeof(OdooModelConverter))]
    public class ResLangOdooModel : IOdooModel
    {
        /// <summary>
        /// 名称  
        /// 字段类型	字符
        /// 必须的
        /// </summary>
        [JsonProperty("name")]
        [Description("名称")]
        public string Name { get; set; }

        /// <summary>
        /// 地区代码  
        /// 字段类型	字符	
        /// 字段帮助	此字段用于为用户设定或获取地区设置
        /// 必须的
        /// </summary>
        [JsonProperty("code")]
        [Description("地区代码")]
        public string Code { get; set; }

        /// <summary>
        /// ISO代码  
        /// 字段类型	字符	
        /// 字段帮助	PO 文件翻译使用的 ISO 国家代码
        /// </summary>
        [JsonProperty("iso_code")]
        [Description("ISO代码")]
        public string IsoCode { get; set; }

        /// <summary>
        /// 网址代码  
        /// 字段类型	字符	
        /// 字段帮助	在URL中显示的语言代码
        /// 必须的
        /// </summary>
        [JsonProperty("url_code")]
        [Description("网址代码")]
        public string UrlCode { get; set; }

        /// <summary>
        /// 有效  
        /// 字段类型	布尔型函数
        /// </summary>
        [JsonProperty("active")]
        [Description("有效")]
        public bool? Active { get; set; }

        /// <summary>
        /// 方向
        /// 字段类型	选择项
        /// 必须的
        /// </summary>
        [JsonProperty("direction")]
        [Description("方向")]
        public DirectionEnum Direction { get; set; }

        /// <summary>
        /// 日期格式
        /// 字段类型	字符
        /// 必须的
        /// </summary>
        [JsonProperty("date_format")]
        [Description("日期格式")]
        public string DateFormat { get; set; }

        /// <summary>
        /// 时间格式
        /// 字段类型	字符
        /// 必须的
        /// </summary>
        [JsonProperty("time_format")]
        [Description("时间格式")]
        public string TimeFormat { get; set; }

        /// <summary>
        /// 一个星期的第一天是
        /// 字段类型	选择项
        /// 必须的
        /// </summary>
        [JsonProperty("week_start")]
        [Description("一个星期的第一天是")]
        public DayOfWeekEnum WeekStart { get; set; }

        /// <summary>
        /// 分割符格式
        /// 字段类型	字符
        /// 必须的
        /// 字段帮助	分隔符的格式应该类似 [,n]，其中 0 < n：从个位数字开始。以 -1 结束分隔。
        ///             例如，[3,2,-1] 将 106500 表示为1,06,500；[1,2,-1] 将其表示为 106,50,0；
        ///             [3] 将其表示为 106,500。在每种情况中将 ',' 做为千位分隔符。
        /// </summary>
        [JsonProperty("grouping")]
        [Description("分割符格式")]
        public string Grouping { get; set; }

        /// <summary>
        /// 小数分割符
        /// 字段类型	字符
        /// </summary>
        [JsonProperty("decimal_point")]
        [Description("小数分割符")]
        public string DecimalPoint { get; set; }

        /// <summary>
        /// 千位分隔符
        /// 字段类型	字符
        /// </summary>
        [JsonProperty("thousands_sep")]
        [Description("千位分隔符")]
        public string ThousandsSep { get; set; }

        /// <summary>
        /// 标志图像
        /// 字段类型	二进制
        /// </summary>
        [JsonProperty("flag_image")]
        [Description("标志图像")]
        public string FlagImage { get; set; }

        /// <summary>
        /// 图像标记网址
        /// 字段类型	字符
        /// </summary>
        [JsonProperty("flag_image_url")]
        [Description("图像标记网址")]
        public string FlagImageUrl { get; set; }

        /// <summary>
        /// ID
        /// 字段类型	整数
        /// </summary>
        [JsonProperty("id")]
        [Description("ID")]
        public long Id { get; set; }

        /// <summary>
        /// 显示名称
        /// 字段类型	字符
        /// </summary>
        [JsonProperty("display_name")]
        [Description("显示名称")]
        public string DisplayName { get; set; }

        /// <summary>
        /// 创建者
        /// 字段类型	多对一
        /// 关联的模型	res.users
        /// </summary>
        [JsonProperty("create_uid")]
        [Description("创建者")]
        public long? CreateUid { get; set; }

        /// <summary>
        /// 创建时间
        /// 字段类型	日期时间
        /// </summary>
        [JsonProperty("create_date")]
        [Description("创建时间")]
        public DateTime? CreateDate { get; set; }

        /// <summary>
        /// 最后更新者
        /// 字段类型	多对一
        /// 关联的模型	res.users
        /// </summary>
        [JsonProperty("write_uid")]
        [Description("最后更新者")]
        public long? WriteUid { get; set; }

        /// <summary>
        /// 更新时间
        /// 字段类型	日期时间
        /// </summary>
        [JsonProperty("write_date")]
        [Description("更新时间")]
        public DateTime? WriteDate { get; set; }

        /// <summary>
        /// 最后更改日  
        /// 字段类型	日期时间
        /// </summary>
        [JsonProperty("__last_update")]
        [Description("最后更改日")]
        public DateTime? LastUpdate { get; set; }
    }
}
